home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / ORBMECHD / ORBMECH3.C < prev    next >
C/C++ Source or Header  |  1991-02-25  |  8KB  |  347 lines

  1. #include    "SANE.h"
  2. #include    "orbmech.h"
  3.  
  4. /* globals */
  5.  
  6. extern    DialogPtr        LambertDia, HohmannDia, HillsDia, KeplerDia, whichDialog, gHelpDia;
  7. extern    DialogPtr        gLamHelpDia, gHillsHelpDia, gKepHelpDia, gHohHelpDia;
  8. extern    StringHandle    gCurParam;
  9. extern    extended        gParameter;
  10. extern    EventRecord        gEvent;
  11.  
  12. Boolean        gFirst = 1;
  13.  
  14. DoCalcMenu( theItem )
  15. int        theItem;
  16. {
  17.     int            itemType;
  18.     Rect        itemRect;
  19.     Handle        itemHandle;
  20.     WindowPtr    dLWinPtr = LambertDia, dOWinPtr = HohmannDia;
  21.     WindowPtr    dHWinPtr = HillsDia, dKWindPtr = KeplerDia;
  22.     ControlHandle    kmSecBut, radBut, timeBut;
  23.  
  24.  
  25.     switch( theItem )
  26.     {
  27.         case LAMBERT:
  28.             ShowWindow( dLWinPtr );
  29.             SelectWindow( dLWinPtr );
  30.             GetDItem ( LambertDia, KM_SEC, &itemType, &kmSecBut, &itemRect);
  31.             SetCtlValue ( kmSecBut, true );
  32.             GetDItem ( LambertDia, RADIANS, &itemType, &radBut, &itemRect);
  33.             SetCtlValue ( radBut, true );
  34.             break;
  35.         case HOHMANN:
  36.             ShowWindow( dOWinPtr );
  37.             SelectWindow( dOWinPtr );
  38.             GetDItem ( HohmannDia, KM_SEC_O, &itemType, &kmSecBut, &itemRect);
  39.             SetCtlValue ( kmSecBut, true );
  40.             GetDItem ( HohmannDia, RAD_BUT2, &itemType, &radBut, &itemRect);
  41.             SetCtlValue ( radBut, true );
  42.             break;
  43.         case HILLS:
  44.             ShowWindow( dHWinPtr );
  45.             SelectWindow( dHWinPtr );
  46.             GetDItem ( HillsDia, KM_SEC, &itemType, &kmSecBut, &itemRect);
  47.             SetCtlValue ( kmSecBut, true );
  48.             break;
  49.         case KEPLER:
  50.             ShowWindow( dKWindPtr );
  51.             SelectWindow( dKWindPtr );
  52.             GetDItem ( KeplerDia, KM_SEC_O, &itemType, &kmSecBut, &itemRect);
  53.             SetCtlValue ( kmSecBut, true );
  54.             GetDItem ( KeplerDia, RAD_BUT, &itemType, &radBut, &itemRect);
  55.             SetCtlValue ( radBut, true );
  56.             GetDItem ( KeplerDia, TIME_UNK, &itemType, &timeBut, &itemRect);
  57.             SetCtlValue ( timeBut, true );
  58.             break;
  59.     }
  60. }
  61.  
  62. /**********************/
  63.  
  64. HandleLambert( itemHit )
  65. int        itemHit;
  66. {
  67.     ControlHandle    kmSecBut, miHrBut, auYrBut, radBut, degBut;
  68.     short            itemType;
  69.     Rect            itemRect;
  70.     
  71.     GetDItem ( LambertDia, KM_SEC, &itemType, &kmSecBut, &itemRect);
  72.     GetDItem ( LambertDia, MI_HR, &itemType, &miHrBut, &itemRect);
  73.     GetDItem ( LambertDia, AU_YR, &itemType, &auYrBut, &itemRect);
  74.     GetDItem ( LambertDia, RADIANS, &itemType, &radBut, &itemRect);
  75.     GetDItem ( LambertDia, DEGREES, &itemType, °But, &itemRect);
  76.     
  77.     switch ( itemHit )
  78.     {
  79.         case CANCEL_BUT:
  80.             HideWindow( LambertDia );
  81.             break;
  82.         case TUTORIAL_BUT:
  83.             DoTutMenu( LAM_HELP );
  84.             break;
  85.         case CALC_BUT:
  86.             Lambert();
  87.             break;
  88.         case KM_SEC:
  89.             SetCtlValue( kmSecBut, true );
  90.             SetCtlValue( miHrBut, false );
  91.             SetCtlValue( auYrBut, false );
  92.             break;
  93.         case MI_HR:
  94.             SetCtlValue( kmSecBut, false );
  95.             SetCtlValue( miHrBut, true );
  96.             SetCtlValue( auYrBut, false );
  97.             break;
  98.         case AU_YR:
  99.             SetCtlValue( kmSecBut, false );
  100.             SetCtlValue( miHrBut, false );
  101.             SetCtlValue( auYrBut, true );
  102.             break;
  103.         case RADIANS:
  104.             SetCtlValue( radBut, true );
  105.             SetCtlValue( degBut, false );
  106.             break;
  107.         case DEGREES:
  108.             SetCtlValue( radBut, false );
  109.             SetCtlValue( degBut, true );
  110.             break;
  111.     }
  112. }
  113.  
  114. /**********************/
  115.  
  116. HandleHohmann( itemHit )
  117. int        itemHit;
  118. {
  119.     ControlHandle    kmSecBut, miHrBut, auYrBut, radBut, degBut;
  120.     short            itemType;
  121.     Rect            itemRect;
  122.     
  123.     GetDItem ( HohmannDia, KM_SEC_O, &itemType, &kmSecBut, &itemRect);
  124.     GetDItem ( HohmannDia, MI_HR_O, &itemType, &miHrBut, &itemRect);
  125.     GetDItem ( HohmannDia, AU_YR_O, &itemType, &auYrBut, &itemRect);
  126.     GetDItem ( HohmannDia, RAD_BUT2, &itemType, &radBut, &itemRect);
  127.     GetDItem ( HohmannDia, DEG_BUT2, &itemType, °But, &itemRect);
  128.         
  129.     switch ( itemHit )
  130.     {
  131.         case CANCEL_BUT:
  132.             HideWindow( HohmannDia );
  133.             break;
  134.         case TUTORIAL_BUT:
  135.             DoTutMenu( HOH_HELP );
  136.             break;
  137.         case CALC_BUT:
  138.             Hohmann();
  139.             break;
  140.         case KM_SEC_O:
  141.             SetCtlValue( kmSecBut, true );
  142.             SetCtlValue( miHrBut, false );
  143.             SetCtlValue( auYrBut, false );
  144.             break;
  145.         case MI_HR_O:
  146.             SetCtlValue( kmSecBut, false );
  147.             SetCtlValue( miHrBut, true );
  148.             SetCtlValue( auYrBut, false );
  149.             break;
  150.         case AU_YR_O:
  151.             SetCtlValue( kmSecBut, false );
  152.             SetCtlValue( miHrBut, false );
  153.             SetCtlValue( auYrBut, true );
  154.             break;
  155.         case RAD_BUT2:
  156.             SetCtlValue( radBut, true );
  157.             SetCtlValue( degBut, false );
  158.             break;
  159.         case DEG_BUT2:
  160.             SetCtlValue( radBut, false );
  161.             SetCtlValue( degBut, true );
  162.             break;
  163.     }
  164. }
  165.  
  166. /**********************/
  167.  
  168. HandleHills( itemHit )
  169. int        itemHit;
  170. {
  171.     ControlHandle    kmSecBut, miHrBut, auYrBut, radBut, degBut;
  172.     short            itemType;
  173.     Rect            itemRect;
  174.     
  175.     GetDItem ( HillsDia, KM_SEC, &itemType, &kmSecBut, &itemRect);
  176.     GetDItem ( HillsDia, MI_HR, &itemType, &miHrBut, &itemRect);
  177.     GetDItem ( HillsDia, AU_YR, &itemType, &auYrBut, &itemRect);
  178.         
  179.     switch ( itemHit )
  180.     {
  181.         case CANCEL_BUT:
  182.             HideWindow( HillsDia );
  183.             break;
  184.         case TUTORIAL_BUT:
  185.             DoTutMenu( HILLS_HELP );
  186.             break;
  187.         case CALC_BUT:
  188.             Hills();
  189.             break;
  190.         case KM_SEC:
  191.             SetCtlValue( kmSecBut, true );
  192.             SetCtlValue( miHrBut, false );
  193.             SetCtlValue( auYrBut, false );
  194.             break;
  195.         case MI_HR:
  196.             SetCtlValue( kmSecBut, false );
  197.             SetCtlValue( miHrBut, true );
  198.             SetCtlValue( auYrBut, false );
  199.             break;
  200.         case AU_YR:
  201.             SetCtlValue( kmSecBut, false );
  202.             SetCtlValue( miHrBut, false );
  203.             SetCtlValue( auYrBut, true );
  204.             break;
  205.     }
  206. }
  207.  
  208. /**********************/
  209.  
  210. HandleKepler( itemHit )
  211. int        itemHit;
  212. {
  213.     ControlHandle    kmSecBut, miHrBut, auYrBut, radBut;
  214.     ControlHandle    degBut, timeBut, posBut;
  215.     short            itemType;
  216.     Rect            itemRect;
  217.     
  218.     GetDItem ( KeplerDia, KM_SEC_O, &itemType, &kmSecBut, &itemRect);
  219.     GetDItem ( KeplerDia, MI_HR_O, &itemType, &miHrBut, &itemRect);
  220.     GetDItem ( KeplerDia, AU_YR_O, &itemType, &auYrBut, &itemRect);
  221.     GetDItem ( KeplerDia, RAD_BUT, &itemType, &radBut, &itemRect);
  222.     GetDItem ( KeplerDia, DEG_BUT, &itemType, °But, &itemRect);
  223.     GetDItem ( KeplerDia, TIME_UNK, &itemType, &timeBut, &itemRect);
  224.     GetDItem ( KeplerDia, F_2_UNK, &itemType, &posBut, &itemRect);
  225.     
  226.     switch ( itemHit )
  227.     {
  228.         case CANCEL_BUT:
  229.             HideWindow( KeplerDia );
  230.             break;
  231.         case TUTORIAL_BUT:
  232.             DoTutMenu( KEP_HELP );
  233.             break;
  234.         case CALC_BUT:
  235.             Kepler();
  236.             break;
  237.         case KM_SEC_O:
  238.             SetCtlValue( kmSecBut, true );
  239.             SetCtlValue( miHrBut, false );
  240.             SetCtlValue( auYrBut, false );
  241.             break;
  242.         case MI_HR_O:
  243.             SetCtlValue( kmSecBut, false );
  244.             SetCtlValue( miHrBut, true );
  245.             SetCtlValue( auYrBut, false );
  246.             break;
  247.         case AU_YR_O:
  248.             SetCtlValue( kmSecBut, false );
  249.             SetCtlValue( miHrBut, false );
  250.             SetCtlValue( auYrBut, true );
  251.             break;
  252.         case RAD_BUT:
  253.             SetCtlValue( radBut, true );
  254.             SetCtlValue( degBut, false );
  255.             break;
  256.         case DEG_BUT:
  257.             SetCtlValue( radBut, false );
  258.             SetCtlValue( degBut, true );
  259.             break;
  260.         case TIME_UNK:
  261.             SetCtlValue( timeBut, true );
  262.             SetCtlValue( posBut, false );
  263.             break;
  264.         case F_2_UNK:
  265.             SetCtlValue( timeBut, false );
  266.             SetCtlValue( posBut, true );
  267.             break;
  268.     }
  269. }
  270.  
  271. /***********************/
  272.  
  273. DoTutMenu( theItem )
  274. int     theItem;
  275. {
  276.     int            itemType;
  277.     Rect        itemRect;
  278.     Handle        itemHandle;
  279.     WindowPtr    dHelpWinPtr = gHelpDia, dLamHelpWinPtr = gLamHelpDia, dHillsHelpWinPtr = gHillsHelpDia;
  280.     WindowPtr    dKepHelpWinPtr = gKepHelpDia, dHohHelpWinPtr = gHohHelpDia;
  281.  
  282.     switch( theItem )
  283.     {
  284.         case HELP:
  285.             ShowWindow( dHelpWinPtr );
  286.             SelectWindow( dHelpWinPtr );
  287.             break;
  288.         case LAM_HELP:
  289.             ShowWindow( dLamHelpWinPtr );
  290.             SelectWindow( dLamHelpWinPtr );
  291.             break;
  292.         case HILLS_HELP:
  293.             ShowWindow( dHillsHelpWinPtr );
  294.             SelectWindow( dHillsHelpWinPtr );
  295.             break;
  296.         case KEP_HELP:
  297.             ShowWindow( dKepHelpWinPtr );
  298.             SelectWindow( dKepHelpWinPtr );
  299.             break;
  300.         case HOH_HELP:
  301.             ShowWindow( dHohHelpWinPtr );
  302.             SelectWindow( dHohHelpWinPtr );
  303.             break;
  304.     }
  305. }
  306.  
  307. /***********************/
  308.  
  309. HandleHelp( theItem )
  310. int     theItem;
  311. {
  312.     if ( theItem == 1 ) HideWindow( gHelpDia );
  313. }
  314.  
  315. /***********************/
  316.  
  317. HandleLamHelp( theItem )
  318. int     theItem;
  319. {
  320.     if ( theItem == 1 ) HideWindow( gLamHelpDia );
  321. }
  322.  
  323. /***********************/
  324.  
  325. HandleHillsHelp( theItem )
  326. int     theItem;
  327. {
  328.     if ( theItem == 1 ) HideWindow( gHillsHelpDia );
  329. }
  330.  
  331. /***********************/
  332.  
  333. HandleKepHelp( theItem )
  334. int     theItem;
  335. {
  336.     if ( theItem == 1 ) HideWindow( gKepHelpDia );
  337. }
  338.  
  339. /***********************/
  340.  
  341. HandleHohHelp( theItem )
  342. int     theItem;
  343. {
  344.     if ( theItem == 1 ) HideWindow( gHohHelpDia );
  345. }
  346.  
  347.